TypeScript 函数类型
函数类型由参数名、参数类型、返回值类型构成:
type GreetFunction = (a: string) => void;
function greeter(fn: GreetFunction) {
// ...
}
由于函数可以有额外的属性,为了完整声明这样的性质,我们需要在对象类型中加入调用签名:
type DescribableFunction = {
description: string;
(someArg: number): boolean;
};
function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}
函数也可以用 new
操作符调用,此时它们创建了新的对象;对于这种情况,我们在对象类型中加入含 new
的调用方法:
interface CallOrConstruct {
new (s: string): Date;
(n?: number): number;
}